﻿<UserControl x:Class="SimpleControls.ComboBox.ComboBoxWaterMarkTextInput"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d" 
             d:DesignHeight="100"
             d:DesignWidth="453"
             
             xmlns:local="clr-namespace:SimpleControls.ComboBox"
             xmlns:watermark="clr-namespace:SimpleControls.WatermarkTextBox"
             >
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="2*"/>
      <ColumnDefinition Width="4*"/>
    </Grid.ColumnDefinitions>
    
    <!-- This will bind the Content property on the label to the 'LabelContent' property on this control-->
    <Label Content="{Binding Path=LabelContent, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}" 
           HorizontalAlignment="Left" VerticalAlignment="Bottom"
           Grid.Column="0" Grid.Row="0"/>

    <!-- This will bind the ItemsSource of the ComboBox to this control's ItemsSource property -->
    <ComboBox ItemsSource="{Binding Path=ItemsSource, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}"
              DisplayMemberPath="{Binding Path=DisplayMemberPath, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}"
              SelectedValuePath="{Binding Path=SelectedValuePath, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}"
              SelectedValue="{Binding Path=SelectedValue, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}"
              SelectedItem="{Binding Path=SelectedItem, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}"
              SelectedIndex="{Binding Path=SelectedIndex, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}"
              VerticalAlignment="Top" HorizontalAlignment="Stretch"
              Grid.Column="0" Grid.Row="1">
    </ComboBox>

    <!-- Reuse the watermark textbox here -->
    <watermark:TextBoxWithWatermark Text="{Binding Path=Text, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}"
                                    LabelTextBox="{Binding Path=LabelTextBox, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}"
                                    Watermark="{Binding Path=Watermark, RelativeSource={RelativeSource FindAncestor, AncestorType=local:ComboBoxWaterMarkTextInput, AncestorLevel=1}}"
                                    VerticalAlignment="Top" HorizontalAlignment="Stretch"
                                    Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" Margin="9, 0"/>
  </Grid>
</UserControl>
